﻿using System;
using System.Collections;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Galoap.JSON;

public partial class Server : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Hashtable lista = new Hashtable();
        string valore, risposta = "";
        int value = 100;
        bool pwd = false;
        bool login = false;
        string richiesta = Request.Params[0].ToString();
        lista = (Hashtable)JSON.JsonDecode(richiesta);
        try
        {
            string type = (string)lista["event"];
            switch(type){
                case "nickname": 
            {
                valore = (string)lista["value"];
                if (valore == "paolo") { risposta = "false"; }
                else risposta = "true";
            }
           break;
                case "email":
            {
                valore = (string)lista["value"];
                if (valore == "ilario@gmail.com") { risposta = "false"; }
                else risposta = "true";
            }
            break;
                case "login": {

                string nick = (string)lista["login"];
                string pass = (string)lista["password"];

                if (nick == "paolo") { login = true; }
                if (pass == md5("pippo")) { pwd = true; }

                if (login)
                    if (pwd) risposta = "{\"risposta\":\"true\", \"user_id\":\"1\"}";
                    else risposta = "{\"risposta\":\"false\", \"user_id\":\"1\"}";
                else risposta = "{\"risposta\":\"false\", \"user_id\":null}";
            }
                    break;
            case "registration":
            {
                string nick = (string)lista["nickname"];
                risposta = nick;
            }
            break;
                case "rank":
            {
                risposta = "{\"Tizio\":" + value + ",\"Caio\":" + 2 * value + ",\"Sempronio\":" + 3 * value + "}";
                value += 10;
            }
            break;
            case "next":
            {
                risposta = "{\"txt\":\"Crea le giuste associazioni.\",\"interrogation\": \"qualcosa\",\"description\":\"Trascina la parola nel suo box.\",\"filejs\": \"URI.js\",\"filecss\": \"URI.css\",\"idocument\":\"images/Sunset.jpg\",\"questionid\": 35,\"knowledge\":\"casa|||pippo|||pippa\",\"info\":\"\",\"sessionid\": 536}";
            } 
            break;
            case "gameResult":
            {
                risposta = "{\"point\":\"1000\"}";
            } 
            break;
            }       
 
        }
        catch (NullReferenceException) { }
        Response.Write(risposta);
        Response.End();
    }

    public string md5(string input)
    {
        System.Security.Cryptography.MD5CryptoServiceProvider x = new System.Security.Cryptography.MD5CryptoServiceProvider();
        byte[] bs = System.Text.Encoding.UTF8.GetBytes(input);
        bs = x.ComputeHash(bs);
        System.Text.StringBuilder s = new System.Text.StringBuilder();
        foreach (byte b in bs)
        {
            s.Append(b.ToString("x2").ToLower());
        }
        string password = s.ToString();
        return password;
    }
}
